home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Languguage OS 2
/
Languguage OS II Version 10-94 (Knowledge Media)(1994).ISO
/
language
/
embedded
/
m68k
/
tutor.arc
/
RAMTEST.SA
< prev
next >
Wrap
Text File
|
1990-01-05
|
4KB
|
75 lines
XDEF RAMTEST
SPC 2
RAMTEST IDNT 1,0 RAMTEST 11/02/81
SECTION 11
***********************************************************************
* MEMORY TEST SUBROUTINE. *
* *
* A0=BEGINNING ADDRESS (MUST BE EVEN ADDRESS) *
* A1=ENDING ADDRESS+1 (MUST BE EVEN ADDRESS) *
* A2=FAILING ADDRESS *
* D0=DATA WRITTEN TO RAM *
* D1=DATA READ FROM RAM *
* *
* ZERO FLAG IS SET IF TEST IS SUCCESSFUL *
* REGISTERS D2,D3,D4 DESTROYED *
***********************************************************************
SPC 2
* -1ST TEST-
RAMTEST DS 0
MOVE.L A0,D3 D3 = BEGINNING ADDRESS
MOVE.L D3,A2 USE A2 AS POINTER IN MEMORY
WALK3 MOVE.L #$FFFFFFFE,D0 PREPARE FOR "WALKING BIT" TEST
WALK0
MOVE.W D0,(A2) STORE D0 INTO MEMORY
MOVE.W (A2),D1 D1 CONTAINS RAM DATA
CMP.W D0,D1 WRITTEN VS. READ
BNE.S RAMERR STOP ON ERROR
ROL.W #1,D0 ROLL A ZERO IN A FIELD OF ONES
BCS.S WALK0 CONTINUE TILL DONE
SPC 1
MOVE.L #$00000001,D0 THIS TIME, WALK A 1 THROUGH ZEROS
WALK1
MOVE.W D0,(A2) STORE D0 INTO MEMORY
MOVE.W (A2),D1 D1 CONTAINS RAM DATA
CMP.W D0,D1 WRITTEN VS. READ
BNE.S RAMERR STOP ON ERROR
ASL.W #1,D0 ROLL A ONE TO THE NEXT POSITION
BCC.S WALK1 CONTINUE TILL DONE
SPC 1
LEA $0100(A2),A2 GO TO NEXT 256TH POSITION
CMP.L A1,A2 CHECK TO SEE IF DONE
BLT.S WALK3 CONTINUE
SPC 1
* -2ND TEST-
MOVE.L D3,A2 SET A2 TO POINT TO START OF MEMORY
MOVE.L #$00000000,D0 CLEAR D0
MTCLR
MOVE.W D0,(A2)+ CLEAR MEMORY
CMP.L A1,A2 DONE?
BNE.S MTCLR NO... ZERO ALL OF MEMORY
SPC 1
MOVE.L #$FFFFFFFF,D2 SET D2 = FFFF
MTSTOR1
MOVE.W -(A2),D1 FIRST READ BACK MEMORY
CMP.W D0,D1 CHK AGAINST WHAT WAS WRITTEN
BNE.S RAMERR STOP ON ERROR
MOVE.W D2,(A2) STORE COMPLEMENT
CMP.L D3,A2 DONE?
BNE.S MTSTOR1 NO... COMPLEMENT ALL OF MEMORY
MOVE.W D2,D0 D0=WHAT WAS WRITTEN
NOT.W D2 SAVE COMPLEMENT FOR LATER
SPC 1
MTSTOR0
MOVE.W (A2),D1 READ BACK MEMORY
CMP.W D0,D1 CHK AGAINST WHAT WAS WRITTEN
BNE.S RAMERR STOP ON ERROR
MOVE.W D2,(A2)+ STORE COMPLEMENT
CMP.L A1,A2 DONE?
BNE MTSTOR0 NO...KEEP LOOPING, YES...
SPC 1
RAMERR MOVE.L D3,A0 RESTORE A0
RTS RETURN
SPC 3
END